#
# @lc app=leetcode.cn id=258 lang=python3
#
# [258] 各位相加
#

# @lc code=start
class Solution:
    # # 常规解法
    # def addDigits(self, num: int) -> int:
    #     res = self.cal_sum(num)
    #     while res // 10 != 0:
    #         res = self.cal_sum(res)
    #     return res
    
    # def cal_sum(self, n):
    #     r = 0
    #     while n != 0:
    #         r += n % 10
    #         n //= 10
    #     return r
    # 数学推导公式方法(每做一次位相加，模9的余数都不变， 且mod 9 的余数即为所求）
    # 但余数为0时，公式需要略作调整
    def addDigits(self, num):
        if num == 0: return 0
        return (num - 1) % 9 + 1
# @lc code=end

